1. Field of the Invention
The invention relates to digital controllers that are used to control industrial machines and processes.
2. Description of the Prior Art
A programmable controller for controlling industrial machines and processes typically has a main processor and a group of input and output (I/O) interface modules. The I/O modules are mounted in slots in an equipment rack. There is a slot at the left end of the rack for receiving either a processor module or an adapter module which communicates with a main processor unit. These two processor arrangements are shown and described in Struger, U.S. Pat. No. 4,250,563, issued Feb. 10, 1981. There, the separate main processor unit is located relatively close to the equipment rack, but with the use of a serial data link the equipment rack can be located remotely from the main processor unit as described in Schultz et al, U.S. Pat. No. 4,413,319, issued Nov. 1, 1983.
The I/O modules contain either a group of output circuits or a group of input circuits. The circuits are connected through terminals on the front of the rack and through external wiring to input and output devices on a machine or process. Typical output devices are solenoids, relays and motor starters. Typical input devices are limit switches, photoelectric sensors and proximity sensors.
An output circuit generates the proper AC or DC signal to operate an output device in response to an individual bit of status data. An input circuit responds to an AC or DC signal from an input device to generate an individual bit of status data. By including eight discrete input circuits in a single input module, data is collected from individual I/O devices and assembled into an eight-bit word of data, or "byte". Similarly, by including eight discrete output circuits in a single output module, bits of data can be distributed from data bytes to operate individual output devices.
The bytes of input and output data are stored in a main memory in the main processor, so that the status of I/O devices can be examined and controlled through execution of a control program. The bytes of input data are stored at a block of addresses in the main memory referred to as the input image table. The bytes of output data are stored at a block of addresses in the main memory referred to as the output image table.
A basic assumption underlying the design of presently available controllers, which allows the user to choose either an input module or an output module for any slot, is that one addressable location in the input image table and one addressable location in the output image table are reserved for handling data associated with each I/O module. When data is transferred between the main processor and the I/O modules during an input/output scanning operation, each slot is scanned twice, once to write a byte of output data to the module, if it was an output module, and once to read a byte of input data from the module, if it is an input module. In each scanning operation, one of these operations is a "dummy" or ineffective operation and one of the two lines of memory associated with the I/O module is not utilized.
In Schultz et al, U.S. Pat. No. 4,413,319, mentioned above, a concept of complementary inputs and outputs was described, where a first rack of output modules and a second rack of input modules were related to the areas in the two image tables that were previously reserved for a single such rack. A single rack of the prior art could hold up to sixteen I/O modules with eight circuits each for handling a total of one hundred twenty-eight I/O devices. By adding a second rack and by using the concept of complementary inputs and outputs, another one hundred twenty-eight I/O devices could be accommodated. While the use of complementary I/O racks would more fully utilize the main memory, it would have no effect on the physical density of I/O circuits in either the individual I/O modules or in a full I/O rack.
To make higher density I/O modules commercially practical, they should be interchangeable with the I/O modules of the prior art in an equipment rack occupying generally the same space and the same general configuration of previous I/O racks. In existing I/O systems, I/O addresses are decoded by the module in the left-most slot in the I/O interface rack, and the decoded signals are transmitted on sixteen enable lines in a backplane circuit board to sixteen respective I/O slots in the rack. When a module in a slot has been enabled, I/O status data is transmitted through an eight-bit I/O data bus in the backplane circuit board.
Assuming that the density of I/O circuits on the I/O modules could be increased from eight to sixteen, there are several technical problems. The first is that two bytes of data must be transferred for each I/O module without substantially changing the I/O scanning operation of existing main processors and without substantially altering the signal protocol along the backplane circuit board. Second, it would be desirable to provide a new scanning technique to overcome these limitations when the new I/O modules are used with newly developed processors. And third, it would further be desirable to allow customers the option of using the higher density I/O modules with either existing processors or the newly developed processors. It is in this environment that the present invention has been made.